package com.jun.leetcode.medium.controller;


import com.jun.leetcode.medium.entity.ListNode;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author : gelianbin
 * @createDate : 7/23/2021
 */
@RestController
@RequestMapping("/mediume")
@Api(tags = "AB中等控制器")
public class MedController {

    @GetMapping("/addTwoNumbers")
    @ApiOperation(value = "二数相加(递归)", notes = "给你两个非空 的链表，表示两个非负的整数。" +
            "它们每位数字都是按照逆序的方式存储的，并且每个节点只能存储一位数字。" +
            "请你将两个数相加，并以相同形式返回一个表示和的链表。" +
            "你可以假设除了数字 0 之外，这两个数都不会以 0开头。")
    public ListNode addTwoNumbers(ListNode l1, ListNode l2){
        return this.addTwoNumbers2(l1,l2,0);
    }
    public ListNode addTwoNumbers2(ListNode l1, ListNode l2,int a) {
        if(l1==null&&l2==null){return a==0?null:new ListNode(a);}
        if(l1 !=null){a += l1.val;l1 = l1.next;}
        if(l2 !=null){a += l2.val;l2 = l2.next;}
        return new ListNode(a%10,addTwoNumbers2(l1,l2,a/10));
    }
}
